//////////////////////////////////////////////////////////////////////////
public:
	/* Generates <sample> from multivariate normal distribution, where <mean> - is an
       average row vector, <cov> - symmetric covariation matrix */
	static void RandMVNormal(IntPtr mean, IntPtr cov, IntPtr sample, IntPtr rng)
	{
		cvRandMVNormal((CvMat*)mean.ToPointer(), (CvMat*)cov.ToPointer(), (CvMat*)sample.ToPointer(), (CvRNG*)rng.ToPointer());
	}
	/* Generates <sample> from multivariate normal distribution, where <mean> - is an
   average row vector, <cov> - symmetric covariation matrix */
	static void RandMVNormal(IntPtr mean, IntPtr cov, IntPtr sample)
	{
		cvRandMVNormal((CvMat*)mean.ToPointer(), (CvMat*)cov.ToPointer(), (CvMat*)sample.ToPointer());
	}

	/* Generates sample from gaussian mixture distribution */
	static void RandGaussMixture(IntPtr means,
							IntPtr covs,
							IntPtr weights,
							int clsnum,
							IntPtr sample,
							IntPtr sampClasses)
	{
		cvRandGaussMixture((CvMat**)means.ToPointer(), 
			(CvMat**)covs.ToPointer(), (float*)weights.ToPointer(), clsnum, (CvMat*)sample.ToPointer(), (CvMat*)sampClasses.ToPointer());
	}

	/* Generates sample from gaussian mixture distribution */
	static void RandGaussMixture(IntPtr means,
		IntPtr covs,
		IntPtr weights,
		int clsnum,
		IntPtr sample)
	{
		cvRandGaussMixture((CvMat**)means.ToPointer(), 
			(CvMat**)covs.ToPointer(), (float*)weights.ToPointer(), clsnum, (CvMat*)sample.ToPointer());
	}
	
	/* creates test set */
	static void CreateTestSet(MLTestsetType type, 
		IntPtr samples,
		int num_samples,
		int num_features,
		IntPtr responses,
		int num_classes)
	{
		cvCreateTestSet((int)type, (CvMat**)samples.ToPointer(), num_samples, num_features, (CvMat**)responses.ToPointer(), num_classes);
	}


//////////////////////////////////////////////////////////////////////////